<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport"
    content="width=device-width, initial-scale=1, maximum-scale=1,minimum-scale=1, user-scalable=no" />
  <title>作用域</title>
  <!-- <link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" /> -->
</head>

<body>
  <script>
    var a = 2;
    function foo() {
      console.log(a)// 2
    }
    function bar() {
      var a = 3;
      foo(); //3
    }
    bar()
    // var fn = function () {
    //   console.log(fn)
    // }
    // fn()

    // var obj = {
    //   fn2: function () {
    //     console.log(fn2)
    //   }
    // }
    // obj.fn2()
    // var b;
    // function fn1() {
    //   var a = 10;
    //   b = a;
    // }
    // fn1();
    // alert(b); //undefined
    // // 同级获取作用域变量
    // var b;
    // function fn1() {
    //   console.log(b);
    // }
    // function fn1(a) {//var a;形参
    //   console.log(a);
    // }
    // function fn2() {
    //   var a = 10;
    //   fn1(a);//a=10实参
    // }
    // fn2();
    // var y = 'global';
    // function test(x) {
    //   if (x) {
    //     var y = 'local';
    //   }
    //   return console.log(y);
    // }
    // console.log(test(true));

    // var y = 'global';
    // function test(x) {
    //   (function () {
    //     if (x) {
    //       var y = 'local';
    //     }
    //   })();
    //   return console.log(y);
    // }
    // console.log(test(true))
    // var y = 'global';
    // function test(x) {
    //   {
    //     if (x) {
    //       var y = 'local';
    //     }
    //   }
    //   return y;
    // }
    // console.log(test(true));
    var sex = '男';
    function person() {
      var name = '张三';
      function student() {
        var age = 18;
        console.log(name); // 张三
        console.log(sex); // 男
      }
      student();
      console.log(age); // Uncaught ReferenceError: age is not defined
    }
    person();
  </script>
</body>

</html>